Directing data in a web browser from a portable electronic device

ABSTRACT

Some embodiments provide a system for interacting with a web browser. During operation, the system establishes a network connection with the web browser from a portable electronic device. Next, the system provides data to the web browser using a web server on the portable electronic device. Finally, the system sends a set of control instructions from the web server to the web browser, wherein the control instructions direct the web browser to obtain and display the data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/619,498, filed Nov. 16, 2009, entitled “DIRECTING DATA IN A WEBBROWSER FROM A PORTABLE ELECTRONIC DEVICE,” now U.S. Pat. No. 8,990,404issued Mar. 24, 2015, the contents of which are incorporated herein byreference in their entirety for all purposes.

FIELD

The present embodiments relate to interaction between a web browser anda portable electronic device. More specifically, the present embodimentsrelate to techniques for directing the display of data in the webbrowser from the portable electronic device.

BACKGROUND

Modern portable electronic devices typically include functionality tocreate, store, open, and/or update various forms of digital media. Forexample, a mobile phone may include a camera for capturing images,memory in which images may be stored, software for viewing images,and/or software for editing images. Moreover, the portability andconvenience associated with portable electronic devices allows users ofthe portable electronic devices to incorporate digital media intoeveryday activities. For example, the camera on a mobile phone may allowa user of the mobile phone to take pictures at various times and inmultiple settings, while the display screen on the mobile phone andinstalled software may allow the user to display the pictures to others.

However, size and resource limitations may prevent users of portableelectronic devices from effectively sharing media on the portableelectronic devices. For example, the display screen on a mobile phonemay be too small to show pictures to a large group of people and/or at asufficient resolution. Instead, the mobile phone user may show thepictures on a large display by copying the pictures from the mobilephone to a different electronic device that is connected to the largerdisplay.

Hence, what is needed is a mechanism for facilitating the sharing ofmedia from a portable electronic device.

SUMMARY

The described embodiments provide a system for interacting with a webbrowser. During operation, the system establishes a network connectionwith the web browser from a portable electronic device. Next, the systemprovides data to the web browser using a web server on the portableelectronic device. Finally, the system sends a set of controlinstructions from the web server to the web browser, wherein the controlinstructions direct the web browser to obtain and display the data.

In some embodiments, providing the data to the web browser using the webserver involves receiving requests associated with the controlinstructions from the web browser, and responding to the requests withthe data.

In some embodiments, the control instructions are sent to the webbrowser using a control channel with the web server.

In some embodiments, the data includes at least one of a webapplication, a webpage, a document, and an image.

In some embodiments, establishing a network connection with the webbrowser from the portable electronic device involves broadcasting aservice associated with the web server using a service discoveryprotocol, and enabling the network connection with the web browser usingthe service discovery protocol.

In some embodiments, the display of the data in the web browser isassociated with at least one of a photo slideshow, a presentation, and adocument.

In some embodiments, the portable electronic device corresponds to amobile phone.

In some embodiments, the display of data on the web browser iscontrolled by a user of the portable electronic device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a schematic of a system in accordance with an embodiment.

FIG. 2 shows a set of mechanisms for facilitating interaction between aportable electronic device and a web browser in accordance with anembodiment.

FIG. 3 shows a flowchart illustrating the process of interacting with aweb browser in accordance with an embodiment.

FIG. 4 shows a flowchart illustrating the process of interacting with aportable electronic device in accordance with an embodiment.

FIG. 5 shows a flowchart illustrating the process of using a controlinstruction to facilitate interaction between a web server and a webbrowser in accordance with an embodiment.

FIG. 6 shows a computer system in accordance with an embodiment.

In the figures, like reference numerals refer to the same figureelements.

DETAILED DESCRIPTION

The following description is presented to enable any person skilled inthe art to make and use the embodiments, and is provided in the contextof a particular application and its requirements. Various modificationsto the disclosed embodiments will be readily apparent to those skilledin the art, and the general principles defined herein may be applied toother embodiments and applications without departing from the spirit andscope of the present disclosure. Thus, the present invention is notlimited to the embodiments shown, but is to be accorded the widest scopeconsistent with the principles and features disclosed herein.

The data structures and code described in this detailed description aretypically stored on a computer-readable storage medium, which may be anydevice or medium that can store code and/or data for use by a computersystem. The computer-readable storage medium includes, but is notlimited to, volatile memory, non-volatile memory, magnetic and opticalstorage devices such as disk drives, magnetic tape, CDs (compact discs),DVDs (digital versatile discs or digital video discs), or other mediacapable of storing code and/or data now known or later developed.

The methods and processes described in the detailed description sectioncan be embodied as code and/or data, which can be stored in acomputer-readable storage medium as described above. When a computersystem reads and executes the code and/or data stored on thecomputer-readable storage medium, the computer system performs themethods and processes embodied as data structures and code and storedwithin the computer-readable storage medium.

Furthermore, methods and processes described herein can be included inhardware modules or apparatus. These modules or apparatus may include,but are not limited to, an application-specific integrated circuit(ASIC) chip, a field-programmable gate array (FPGA), a dedicated orshared processor that executes a particular software module or a pieceof code at a particular time, and/or other programmable-logic devicesnow known or later developed. When the hardware modules or apparatus areactivated, they perform the methods and processes included within them.

Embodiments provide a method and system for interacting with a portableelectronic device such as a mobile phone, personal digital assistant(PDA), and/or portable media player. More specifically, embodimentsprovide a method and system for facilitating interaction between theportable electronic device and a web browser. The portable electronicdevice may include a web server that provides a service, which in turnis broadcast using a service discovery protocol. A network connectionbetween the web server and web browser may then be established using theservice discovery protocol. Using the network connection, the web servermay send data to the web browser. In addition, the web server may directthe display of the data on the web browser by sending a set of controlinstructions to the web browser. As a result, the web server may allow auser of the portable electronic device to share digital media and/orother data from the portable electronic device with web browsers onother electronic devices. For example, the user may control the displayof a photo slideshow, a presentation, and/or a document in the webbrowsers from the portable electronic device.

FIG. 1 shows a schematic of a system in accordance with an embodiment.As shown in FIG. 1, the system includes a portable electronic device102, a set of computer systems 114-116, and a different portableelectronic device 118. Computer systems 114-116 and portable electronicdevice 118 each include a web browser 108-112, and portable electronicdevice 102 includes a broadcasting apparatus 104 and a web server 106.Portable electronic device 102 and portable electronic device 118 maycorrespond to mobile phones, personal digital assistants (PDAs),portable media players, and/or other compact electronic devices thatinclude functionality to store digital media such as documents, images,audio, and/or video. Computer systems 114-116 may correspond to personalcomputers, laptop computers, workstations, and/or other electronicdevices that typically include more resources (e.g., processing power,display size, memory, etc.) than portable electronic device 102 orportable electronic device 118.

In one or more embodiments, the system of FIG. 1 facilitates interactionbetween portable electronic device 102 and web browsers 108-112. Inparticular, the system of FIG. 1 may allow portable electronic device102 to transmit data to web browsers 108-112 via a network connectionwith web browsers 108-112 and direct the display of data within webbrowsers 108-112. Furthermore, the display of data within web browsers108-112 may be controlled by a user of portable electronic device 102.For example, the user may control the display of a photo slideshow,presentation, and/or document on web browsers 108-112 from anapplication on portable electronic device 102. In other words,interaction between portable electronic device 102 and web browsers108-112 may facilitate the sharing of digital media on portableelectronic device 102 by allowing the digital media to be played and/orviewed in web browsers 108-112 executing on other electronic devices(e.g., computer systems 114-116, portable electronic device 118).

To enable network connections between portable electronic device 102 andweb browsers 108-112, broadcasting apparatus 104 may broadcast a serviceassociated with web server 106 using a service discovery protocol. Upondetecting the service, web browsers 108-112 may connect to web server106 using the service discovery protocol. For example, broadcastingapparatus 104 may use a wireless transmitter on portable electronicdevice 102 and the Bonjour (Bonjour™ is a registered trademark of AppleInc.) service discovery protocol to broadcast the service to electronicdevices (e.g., computer systems 114-116, portable electronic device 118)on the same local area network (LAN) as portable electronic device 102.The service may be found on web browsers 108-112 as a Bonjour bookmark;users of web browsers 108-112 may select the Bonjour bookmark to connectto web server 106 and receive data from web server 106. On the otherhand, if a web browser does not support Bonjour, a user of the webbrowser may connect to web server 106 by providing a Uniform ResourceLocator (URL) associated with web server 106 to the web browser.

In one or more embodiments, data sent from web server 106 to webbrowsers 108-112 includes web applications, webpages, documents, images,and/or other types of digital media. For example, web server 106 mayenable the display of a photo slideshow on web browsers 108-112 bysending a Javascript (Javascript™ is a registered trademark of SunMicrosystems, Inc.) application, one or more software libraries, and/orone or more HyperText Markup Language (HTML) documents to web browsers108-112. Once the photo slideshow is enabled on web browsers 108-112,web server 106 may transmit images to be displayed within the photoslideshow and/or control instructions associated with displaying theimages to web browsers 108-112.

In one or more embodiments, control instructions are used by web server106 to provide data for display to web browsers 108-112. In particular,web server 106 may send a set of control instructions to web browsers108-112 that direct web browsers 108-112 to obtain specific types ofdata from web server 106. The control instructions may be sent from webserver 106 to web browsers 108-112 using a control channel between webserver 106 and web browsers 108-112. Web browsers 108-112 may then sendrequests (e.g., HyperText Transfer Protocol (HTTP) requests) for thedata to web server 106, which may respond with the requested data. Asdiscussed in further detail below with respect to FIGS. 2 and 5, controlinstructions may also be used by web server 106 to controlnon-data-based output in web browsers 108-112.

As mentioned above, the display of data on web browsers 108-112 may becontrolled by a user of portable electronic device 102. Morespecifically, the user may generate commands that control thebroadcasting of services on portable electronic device 102 frombroadcasting apparatus 104, as well as the transmission of controlinstructions between web server 106 and web browsers 108-112. In one ormore embodiments, the user accesses an application on portableelectronic device 102 to start web server 106 and/or broadcastingapparatus 104. The user may also use the application to specifypreferences associated with the operation of web server 106 and/orbroadcasting apparatus 104. For example, the user may grant or denyrequests to connect with web server 106 from one or more web browsers(e.g., web browsers 108-112) and/or specify the functionality of webserver 106 (e.g., displaying a photo slideshow, displaying apresentation, displaying a document, playing audio, etc.).

After connected web browsers are configured to display data from webserver 106 (e.g., within a web application), the user may use theapplication to select digital media and/or other data for display withinweb browsers 108-112. For example, the user may generate commands thatspecify the display of a specific image, portion of a document, and/orslide of a presentation on web browsers 108-112. In other words, theuser may guide the real-time display of data in web browsers 108-112from portable electronic device 102. The data may also be processed bythe application, web server 106, and/or another component on portableelectronic device 102 before the data is sent to web browsers 108-112.For example, images selected for display within a slideshow may bescaled by an image-processing module on portable electronic device 102prior to transmitting the images to web browsers 108-112 for display.

Those skilled in the art will appreciate that web browsers 108-112 mayconnect to and/or disconnect from web server 106 at different times. Asa result, web server 106 may include functionality to handle and trackevents related to interaction with individual web browsers 108-112 bymaintaining session information for each web browser 108-112 thatconnects to web server 106. If a web browser connects to web server 106after web server 106 has started transmitting data to be displayed inconnected web browsers, the new web browser may receive the data inmid-stream, along with software libraries, web applications, and/orwebpages used to view the data. For example, a web browser that connectsto web server 106 in the middle of a presentation may receive the nextslide of the presentation and omit the display of slides that weretransmitted prior to connecting with web server 106. Alternatively, theweb browser may also receive previously transmitted data if web server106 is configured to handle different data streams to different webbrowsers and/or if such functionality is enabled by the user of portableelectronic device 102.

Furthermore, web server 106 may transmit data to different web browsers108-112 based on characteristics of the network connection between webserver 106 and each web browser and/or the electronic device on whichthe web browser resides. For example, electronic devices with largedisplay screens and/or faster connection speeds may receive data at ahigher bit rate and/or resolution from web server 106 than electronicdevices with smaller display screens and/or slower connection speeds.Along the same lines, effects such as the animation of a laser pointerwithin a slideshow or presentation may be displayed at a higher framerate in electronic devices with faster connection speeds than inelectronic devices with slower connection speeds.

Although the example described above illustrates how a single electronicdevice can be used to communicate and operate with multiple browsers,the same techniques can be generalized to allow multiple electronicdevices to communicate with one or more browsers. This generalizationcan facilitate collaboration between the users of the multipleelectronic devices, and can enable a wider audience to participate in apresentation. For example, users of the multiple electronic devices caneach control their own pointer within a presentation. In this way,multiple pointers controlled by different people can appear on thedisplay at the same time.

FIG. 2 shows a set of mechanisms for facilitating interaction betweenportable electronic device 102 and a web browser 200 in accordance withan embodiment. More specifically, FIG. 2 shows a set of mechanisms forestablishing a network connection between portable electronic device 102and web browser 200 and transmitting data between portable electronicdevice 102 and web browser 200. As described above, portable electronicdevice 102 may correspond to a network-enabled mobile phone and/or othercompact electronic device that is configured to store digital media. Webbrowser 200 (e.g., web browsers 108-112 of FIG. 1) may be provided by acomputer system and/or different portable electronic device on the sameLAN as portable electronic device 102.

As shown in FIG. 2, broadcasting apparatus 104 may utilize a servicediscovery protocol 202 to broadcast a service associated with web server106 on portable electronic device 102. For example, broadcastingapparatus 104 may correspond to a software and/or hardware module onportable electronic device 102 that uses the Bonjour service discoveryprotocol to broadcast a Bonjour-advertised service associated with webserver 106 on the LAN to which portable electronic device 102 isconnected. Web browser 200 may use service discovery protocol 202 todetect the service and connect to web server 106. For example, webbrowser 200 may display a Bonjour bookmark to a user of web browser 200upon detecting a Bonjour-advertised service associated with web server106. If the user selects the Bonjour bookmark, web browser 200 mayconnect to web server 106 using Bonjour. Alternatively, if web browser200 does not support service discovery protocol 202, web browser 200 mayobtain a hyperlink and/or URL to web server 106 and connect to webserver 106 using the hyperlink and/or URL.

Once the network connection is established between web server 106 andweb browser 200, web server 106 may send one or more webpages, webapplications, software libraries, and/or other files to web browser 200to allow web browser 200 to receive and share digital media fromportable electronic device 102. The files may be associated with the URLused by web browser 200 to connect to web server 106. After the filesare loaded by web browser 200, web server 106 may use a control channel204 to direct the display of data within web browser 200.

In one or more embodiments, control channel 204 is created byconfiguring web browser 200 to repeatedly request a specific resource(e.g., using a URL) from web server 106. Web server 106 may then sendcontrol instructions to web browser 200 through control channel 204 asresponses to the repeated request. Moreover, such responses may bedelayed by web server 106 until the user of portable electronic device102 generates a command that prompts an action by web browser 200. Forexample, web server 106 may respond to a request by web browser 200 witha control instruction only after the user has selected a photo fordisplay on web browser 200.

In one or more embodiments, the control instructions may be used tofacilitate the transmission of data from web server 106 to web browser200. Once web browser 200 receives a control instruction associated withobtaining data from web server 106, web browser 200 may send a HyperTextTransfer Protocol (HTTP) 206 request for the data to web server 106. Webserver 106 may then process the request and respond with the requesteddata using HTTP 206. For example, interaction between web server 106 andweb browser 200 for displaying an image in a photo slideshow within webbrowser 200 may include the following requests from web browser 200 andresponses from web server 106:

-   -   request: GET dynamic/next    -   response: show 131    -   request: GET image/131    -   response: data for image/131        The first request (e.g., “GET dynamic/next”) may be used to        establish and maintain control channel 204. If a Transmission        Control Protocol (TCP) between web browser 200 and web server        106 times out before a response is received, web browser 200 may        repeat the request. Web server 106 may respond to the request        using a control instruction (e.g., “show 131”) that directs web        browser 200 to show an image. For example, web server 106 may        send the control instruction to web browser 200 after the user        selects the image for display within an application on portable        electronic device 102. To show the image, web browser 200 may        send an HTTP 206 request for the image (e.g., “GET image/131”)        to web server 106, which in turn may process the request and        send an HTTP 206 response containing data for the image.

Control instructions may also be used by web server 106 for purposesother than transmitting data to web browser 200. In other words, suchcontrol instructions may not require the use of HTTP 206 requests andresponses to accomplish the intended effect. For example, non-data-basedcontrol instructions may be used to draw shapes within web browser 200,rotate and translate images in a photo slideshow, and/or display a laserpointer on a specific portion of an image. In addition, web browser 200may simply display effects associated with non-data-based controlinstructions without requesting data (e.g., images, files, etc.) fromweb server 106. For example, web browser 200 may display the output of adrawing utility that is controlled from portable electronic device 102.To process the non-data-based control instructions, web browser 200 mayexecute one or more portions of a web application. For example, webbrowser 200 may execute a control instruction associated with showing alaser pointer in a photo slideshow by making function calls to alaser-pointer module in a web application used to display the photoslideshow.

As mentioned previously, commands for directing the display of data onweb browser 200 may be generated by a user of portable electronic device102. As a result, control instructions may be sent from web server 106to web browser 200 in response to the user's interaction with portableelectronic device 102. For example, the user may use an application onportable electronic device 102 to direct the display of a presentation,document, and/or photo slideshow in web browser 200. The user may selectthe documents and/or images to be displayed, control the display of thedocuments and/or images from web browser 200, and/or generate effects(e.g., laser pointers, transformations, etc.) associated with thedisplay of the documents and/or images. Each of the user's actions maygenerate a corresponding control instruction from web server 106 to webbrowser 200 to produce the desired effect. Consequently, the user mayuse portable electronic device 102 as a mechanism for controlling theoutput of web browser 200 on a different electronic device.

FIG. 3 shows a flowchart illustrating the process of interacting with aweb browser in accordance with an embodiment. In one or moreembodiments, one or more of the steps may be omitted, repeated, and/orperformed in a different order. Accordingly, the specific arrangement ofsteps shown in FIG. 3 should not be construed as limiting the scope ofthe embodiments.

First, a network connection with the web browser is established from aportable electronic device (operation 302). The portable electronicdevice may correspond to a mobile phone and/or other network-enableddevice that stores digital media. The network connection may beestablished by broadcasting a service on the portable electronic deviceusing a service discovery protocol and connecting to the web browserusing the service discovery protocol. Next, data is provided to the webbrowser using a web server on the portable electronic device (operation304). The data may include web applications, webpages, documents,images, and/or other types of digital media.

Finally, a set of control instructions is sent from the portableelectronic device to the web browser (operation 306). The controlinstructions may direct the web browser to obtain and/or display thedata. For example, the control instructions may direct the web browserto obtain and display a set of images stored on the portable electronicdevice. The control instructions may also specify the display of effects(e.g., transformations, laser pointers, etc.) associated with the imageswithin the web browser.

For example, one embodiment of the system provides control instructionswhich facilitate using the portable electronic device to control aslideshow on one or more browsers. Note that these instructions are sentfrom the portable electronic device to the one or more web browsers andare acted on by applications which resides on the web browsers. Also,note that for each of these instructions, “DT” is the applicationnamespace and “appController” is the application's global applicationcontroller. Moreover, the commands, such as “showPhoto,” are methodsassociated with the respective object. Exemplary control instructionsappear below.

DT.appController.showPhoto(photoID)—This instruction shows a photo,which is indexed by photoID, on a display for a browser-basedpresentation.

DT.appController.setSlideshowIndexInAlbum(photoIndex,albumID)—Thisinstruction switches the browser to a slideshow for an album, which isindexed by albumID. This slide show starts at the photo which is indexedby photoIndex within that album and automatically sequences through thephotos in the album.DT.appController.stop( )—This instruction terminates a currentlyexecuting slide show.DT.appController.showSpotlight(x,y)—This instructions shows a laserpointer on at a location x, y on the current photo. The arguments x andy are values in the unit square (i.e., they are in the range [0,1]), andthe position of the laser pointer is determined by multiplying thevalues x and y by the width and height, respectively, of the associatedimage.DT.appController.hideSpotlight( )—This instruction hides the laserpointer.

As mentioned previously, during operation of the system each browsermakes repeated requests to a URL. For example, in one embodiment, therequest is specified by “/poll/getAction?id=sessionID,” where sessionIDis a unique identifier for this client. A response is served back fromthe server on the portable electronic device to the browser with a MIMEtype of “application/x-javascript,” telling a client JavaScriptapplication (which is executing on the browser) to execute the contentsof the response. The commands, therefore, are simply JavaScript code.Moreover, when the commands are generated, arguments are inserted intothe commands based on the user action. For example, a command would besomething like “DT.appController.showPhoto(131)”, if the user of theportable electronic device had chosen to display photo 131.

Note that the application which resides on the web browser handlesspecial effects for the slide show, such as producing special effectsfor transitions between photographs. For example, these special effectscan include fading and dissolving between successive photographs andgraphical animations of photographs moving.

FIG. 4 shows a flowchart illustrating the process of interacting with aportable electronic device in accordance with an embodiment. In one ormore embodiments, one or more of the steps may be omitted, repeated,and/or performed in a different order. Accordingly, the specificarrangement of steps shown in FIG. 4 should not be construed as limitingthe scope of the embodiments.

Initially, a network connection is established with the portableelectronic device from the web browser (operation 402). The web browsermay execute on a computer system and/or different portable electronicdevice on the same LAN as the portable electronic device. Next, datafrom a web server on the portable electronic device is obtained usingthe web browser (operation 404). For example, the web browser may useHTTP to request and receive webpages, web applications, softwarelibraries, and/or digital media from the web server. Finally, the datais displayed in the web browser based on a set of control instructionsfrom the web server to the web browser (operation 406).

FIG. 5 shows a flowchart illustrating the process of using a controlinstruction to facilitate interaction between a web server and a webbrowser in accordance with an embodiment. In one or more embodiments,one or more of the steps may be omitted, repeated, and/or performed in adifferent order. Accordingly, the specific arrangement of steps shown inFIG. 5 should not be construed as limiting the scope of the embodiments.

Initially, the control instruction is sent through a control channel(operation 502) between the web server and web browser. The controlchannel may be established and maintained by repeatedly sending arequest for a specific resource from the web browser to the web server.Consequently, the control instruction may be sent through the controlchannel as a response to the requested resource.

Next, the control instruction is processed using the web browser(operation 504). In particular, processing of the control instructionmay involve the generation of a request (operation 506) associated withthe control instruction, such as an HTTP request. For example, an HTTPrequest may be generated if the control instruction involves thetransfer of data between the web server and web browser.

If no request is to be generated, the control instruction is carried outby the web browser without further interaction with the web server. Forexample, the web browser may process a control instruction for a laserpointer effect by calling a function on a web application to display acolored dot within a webpage. On the other hand, if a request associatedwith the control instruction is to be generated, the request is sent tothe web server (operation 508), and the request is processed using theweb server (operation 510). For example, the web server may process anHTTP request for data from the web browser by sending an HTTP responsewith the requested data.

Because requests from the web browser to the web server are generated asa result of control instructions from the web server to the web browser,the web server may essentially command the web browser to request datafrom the web server through the control channel. The web server may thenrespond with the data instead of sending the data directly to the webbrowser without sending a control instruction first. In other words, thecontrol channel may allow the web browser to monitor the networkconnection for control instructions from the web server, while thecontrol instructions may be used by the web server to direct behavior inthe web browser using common network protocols such as HTTP as long asthe network connection is maintained. Use of the control channel and/orcontrol instructions to mediate interaction between the web browser andweb server may thus prevent the web server from attempting to transmitdata to the web browser if the web browser is no longer connected to theweb server.

FIG. 6 shows a computer system in accordance with an embodiment.Computer system 600 includes a processor 602, memory 604, storage 606,and/or other components found in electronic computing devices. Processor602 may support parallel processing and/or multi-threaded operation withother processors in computer system 600. Computer system 600 may alsoinclude input/output (I/O) devices such as a keyboard 608, a mouse 610,and a display 612.

Computer system 600 may include functionality to execute variouscomponents of the present embodiments. In particular, computer system600 may include an operating system (not shown) that coordinates the useof hardware and software resources on computer system 600, as well asone or more applications that perform specialized tasks for the user. Toperform tasks for the user, applications may obtain the use of hardwareresources on computer system 600 from the operating system, as well asinteract with the user through a hardware and/or software frameworkprovided by the operating system.

In one or more embodiments, computer system 600 provides a system forfacilitating interaction with a portable electronic device. The systemmay include a broadcasting apparatus that broadcasts a serviceassociated with a web server on the portable electronic device using aservice discovery protocol. The system may also include a web serverthat establishes a network connection with one or more web browsersusing the service discovery protocol, provides data to the webbrowser(s), and directs the display of the data in the web browser(s).

In addition, one or more components of computer system 600 may beremotely located and connected to the other components over a network.Portions of the present embodiments (e.g., broadcasting apparatus, webbrowsers, web server, etc.) may also be located on different nodes of adistributed system that implements the embodiments. For example, thepresent embodiments may be implemented using a set of computer systemsthat communicate with the portable electronic device using a networkconnection with the portable device and display data obtained from theportable electronic device within web browsers.

The foregoing descriptions of various embodiments have been presentedonly for purposes of illustration and description. They are not intendedto be exhaustive or to limit the present invention to the formsdisclosed. Accordingly, many modifications and variations will beapparent to practitioners skilled in the art. Additionally, the abovedisclosure is not intended to limit the present invention.

What is claimed is:
 1. A method for operating a transmitter device thatfacilitates sharing of media data between computing devices, the methodcomprising: by the transmitter device: connecting to an input channel ofa first computing device; detecting a service that is broadcasted by asecond computing device; in response to detecting the service,establishing a control channel with the second computing device;receiving, via the control channel, a command from an applicationexecuting on the second computing device, wherein the commandcorresponds to a request to display the media data at the firstcomputing device; receiving the media data from the second computingdevice; and causing the first computing device to display the media datathrough a first display device that is communicably coupled to the firstcomputing device, wherein the second computing device displays, througha second display device that is communicably coupled to the secondcomputing device, the media data simultaneously to the first computingdevice displaying the media data.
 2. The method as in claim 1, whereinthe first computing device and the second computing device are connectedto a common local area network.
 3. The method as in claim 1, wherein thecommand is sent from the application in response to a user selecting animage displayed at an interface of the application.
 4. The method as inclaim 1, wherein the command corresponds to a hypertext transferprotocol (HTTP) request.
 5. The method as in claim 1, wherein thetransmitter device is a remote device relative to the first computingdevice and the second computing device.
 6. A transmitter device thatenables media data to be shared between devices, the transmitter devicecomprising: at least one processor; and at least one memory storinginstructions that, when executed by the at least one processor, causethe transmitter device to carry out steps that include: receiving, via acontrol channel associated with a second computing device, a request toreceive the media data from an application executing on the secondcomputing device; receiving the media data from the second computingdevice; and causing a first computing device to display the media datathrough a first display device that is communicably coupled to the firstcomputing device, wherein the second computing device displays, througha second display device that is communicably coupled to the secondcomputing device, the media data simultaneously to the first computingdevice displaying the media data.
 7. The transmitter device as in claim6, wherein the media data includes a uniform resource locator (URL). 8.The transmitter device as in claim 6, wherein the request is sent fromthe application in response to a user selecting an image displayed at aninterface of the application.
 9. The transmitter device as in claim 6,wherein the request corresponds to a hypertext transfer protocol (HTTP)request.
 10. The transmitter device as in claim 6, wherein thetransmitter device is a remote device relative to the first computingdevice and the second computing device.
 11. At least onemachine-readable non-transitory storage medium configured to storeinstructions that, when executed by at least one processor included inan apparatus that is connected to a local area network, cause theapparatus to carry out steps that include: detecting a service beingbroadcasted by a second computing device that is connected to the localarea network; establishing a control channel with the second computingdevice; receiving, via the control channel, a request to receive mediadata from an application executing on the second computing device;receiving the media data from the second computing device; and causing afirst computing device to display the media data through a first displaydevice that is communicably coupled to the first computing device,wherein the second computing device displays, through a second displaydevice that is communicably coupled to the second computing device, themedia data simultaneously to the first computing device displaying themedia data.
 12. The at least one machine-readable non-transitory storagemedium as in claim 11, wherein the media data includes a uniformresource locator (URL).
 13. The at least one machine-readablenon-transitory storage medium as in claim 11, wherein the request issent from the application in response to a user selecting an imagedisplayed at an interface of the application.
 14. The at least onemachine-readable non-transitory storage medium as in claim 11, whereinthe request corresponds to a hypertext transfer protocol (HTTP) request.15. The at least one machine-readable non-transitory storage medium asin claim 11, wherein the apparatus is a remote device relative to thefirst computing device and the second computing device.
 16. The at leastone machine-readable non-transitory storage medium as in claim 11,wherein the media data is associated with an image or video displayed atthe second computing device.
 17. The at least one machine-readablenon-transitory storage medium as in claim 16, wherein the secondcomputing device is a portable electronic device, and the steps furtherinclude receiving a command to change an orientation of a picturedisplayed at the first computing device.